草庐IT

Safari 技术

全部标签

javascript - OSX 上的 Safari 6 中的 CSS3 闪烁(但这不是闪烁到白色的问题!)

此问题不会出现在iOS或Chrome上,因此它不是与Webkit相关的问题。它似乎特定于OSX10.8.2上的最新Safari6.0.2(并且未被Safari6.0.3附带的10.8.3预览版本12D65修复)。我将很快在带有Safari6.0.2的Lion10.7.5上进行测试,还将在预览版12D68上进行测试。http://jsfiddle.net/zrr2b/这是一个使问题非常明显的fiddle。如果您有一台运行ML的Mac,您应该会看到Chrome和Safari之间的显着差异,当您移动鼠标时,Safari会闪烁很多。基本上,问题是Safari会间歇性地绘制从JS为单个帧设置的目

javascript - Safari 扩展显示不同窗口的弹出窗口

我正在尝试构建一个Safari扩展,当用户点击Command+B时,它将显示弹出窗口。使用下面的代码它可以工作,但总是在不同的窗口而不是当前窗口/选项卡上显示弹出窗口。我希望它在当前窗口上显示弹出窗口,而不是切换到另一个窗口并在那里打开弹出窗口。如果只有一个Safari窗口打开,它可以完美运行,但当打开多个窗口时开始出现问题。有什么想法吗?全局页面文件:safari.application.addEventListener('message',function(e){if(e.name=='ShowPopover'){safari.extension.toolbarItems[0].s

javascript - 如何防止Safari拦截ajax请求的401响应

我在Safari扩展中遇到以下问题。我要求用户提供他们的网络服务用户名/密码,并发送一个快速请求以验证凭据是否正确。如果不是,该服务将以我认为应该的方式响应401。问题是Safari似乎在我的javascript代码可以处理它之前拦截了这个响应,显示灰色登录框而不是让我处理错误。我能做些什么吗?我正在使用js库进行调用,但它在功能上等同于以下jQuery。$.ajax({type:"GET",url:url,username:username,password:password,success:function(){/*handlesuccess*/},error:function()

javascript - 为什么我不能在 Chrome(和 Safari)中将 console.log 作为回调参数传递?

以下代码片段在Firefox中运行时会在Chrome(和Safari)中产生错误。我希望在javascript控制台中显示2个数字,但在Chrome中我只得到第一个,然后是UncaughtTypeError:Illegalinvocation//agenericpromisethatreturnarandomfloatvarmakePromise=function(){return$.Deferred().resolve(Math.random());}//ThisworksinallbrowsersmakePromise().then(function(d){console.log(

javascript - Safari 不会在服务器端的刷新/onbeforeunload 上运行回调函数(调用客户端代码)

我试图在卸载窗口时(即刷新页面时)向数据库发送一些请求。出于某种原因,仅在Safari上,客户端代码得到执行,但对服务器的请求永远不会通过。当我在调试器中手动单步执行代码时,服务器确实收到了请求并对其进行了很好的处理。有人知道为什么会这样吗?window.onbeforeunload=function(){console.log("insideonbeforeunload");varrequestParam=newa.ListRequest();requestParam.setAction('set_delete');varcallback=function(isSuccess,res

javascript - Safari 在表单提交后不允许 AJAX 请求?

我正在编写一个基于Javascript的上传进度表。我想使用标准的多部分提交方法(而不是在iframe中提交文件)。在提交期间,我发送返回上传完成百分比的ajax请求,然后相应地更新进度表。这一切在FireFox和IE中都能顺利运行。但是,Safari似乎会在提交主表单后阻止完成ajax请求。在调试器中,我可以看到请求header,但似乎从未收到响应。任何人都知道这一点,或者如何解决它? 最佳答案 是的,这就是Safari和任何基于WebKit的浏览器(即GoogleChrome)的行为方式。我最近也在文件上传进度表上遇到了这个问题

javascript - 在 Safari for Mac 中使用 Ctrl+Click 时如何禁用上下文菜单事件中的单击事件?

在MacOS10.9上的Safari中使用ctrl+click触发上下文菜单事件(Context.JS)时,也会触发mousedown/up/click事件。这会导致菜单关闭。这些事件似乎彼此异步发生,因此stopPropagation不起作用,这似乎也会导致间歇性行为,有时没问题,有时则不然。有没有其他人遇到过这个问题,如果你遇到过,你是如何解决/解决它的?不幸的是,我无法向大众发布代码,但我希望它听起来很熟悉。fiddle:http://jsfiddle.net/gnh2tuyj/ 最佳答案 您可以使用ctrlKeyproper

javascript - 将 Safari 6 控制台的上下文更改为页面上的 iframe

我知道Chrome让您使用下拉菜单选择控制台执行的上下文,Firebug让您cd()进入iframe。我不知道如何更改Safari控制台中的上下文。有谁知道如何做到这一点? 最佳答案 与chrome和firefox不同,Safari没有真正支持此功能,唯一的选择似乎是从控制台访问窗口对象。正如您正确指出的那样,这将触发跨域策略问题,但是如果您在mac上运行(由于某些原因这在windows上不起作用)您可以使用open-a'/Applications/Safari.app'--args--disable-web-security绕过这

javascript - iPhone Safari screen.availHeight 和状态栏/工具栏/地址栏

我试图在iPhoneSafari中获取可用的屏幕尺寸,以便将容器缩小到屏幕的高度,减去状态栏和工具栏。由于iOS总是返回屏幕尺寸,就像手机处于纵向一样,我使用screen.availWidth来计算横向高度。以下是返回的尺寸:screen.width;//320screen.availWidth;//30020px的差异考虑了手机顶部的状态栏,但没有考虑屏幕底部的按钮栏(工具栏)。是否有任何我可以使用的返回268px的属性?我只会做(screen.availWidth-32),但用户有可能将站点添加为桌面书签,在这种情况下,该栏将不存在,300像素的值将是正确的。

javascript - 无法在 Safari Javascript 中使用 "let"关键字?

我不明白使用“let”关键字的最佳方式...在IE11和Chrome45中我可以很好地使用它在Safari8.0.4中,与在旧版本的Chrome中一样,它给出错误“意外使用保留字‘let’”在Firefox中,let关键字仅在中有效,但这种脚本类型在IE11、Chrome45、Safari8中甚至不能被识别为Javascript。这里有一个JSFiddle展示了它的实际效果:https://jsfiddle.net/p6cgtyg6/1/所以--我不介意要求用户使用现代版本的浏览器。如果老实说没有支持此关键字的Safari版本,我不介意排除Safari。(这是真的吗?为什么每个人都把所